#ifndef __QYQ_ARITHMETIC_FILTER_H_
#define __QYQ_ARITHMETIC_FILTER_H_
#include "chip_include.h"
#ifndef __QYQ_ARITHMETIC_FILTER_C_
#define QYQ_ARITHMETIC_FILTER_EXT extern
#else
#define QYQ_ARITHMETIC_FILTER_EXT
#endif


QYQ_ARITHMETIC_FILTER_EXT void qyq_arithmetic_limiting_filter(int32_t old_value, int32_t new_value, int32_t deviation_value, int32_t *reture_value);
QYQ_ARITHMETIC_FILTER_EXT void qyq_arithmetic_median_filter(int32_t *buf, uint32_t number, int32_t *reture_value);
QYQ_ARITHMETIC_FILTER_EXT void qyq_arithmetic_average_filter(int32_t *buf, uint32_t number, int32_t *reture_value);
QYQ_ARITHMETIC_FILTER_EXT void qyq_arithmetic_recursive_average_filter(int32_t new_value, int32_t *buf, uint32_t number, int32_t *reture_value);
QYQ_ARITHMETIC_FILTER_EXT void qyq_arithmetic_median_average_filter(int32_t *buf, uint32_t number, uint32_t rejection_value, int32_t *reture_value);
QYQ_ARITHMETIC_FILTER_EXT void qyq_arithmetic_limiting_average_filter(int32_t old_value, int32_t new_value, int32_t deviation_value, int32_t *buf, uint32_t number, int32_t *reture_value);
QYQ_ARITHMETIC_FILTER_EXT void qyq_arithmetic_lagging_filter(int32_t old_value, int32_t new_value, uint8_t a_value, int32_t *reture_value);
QYQ_ARITHMETIC_FILTER_EXT void qyq_arithmetic_weighted_recursive_average_filter(int32_t new_value, int32_t *buf, uint32_t number, int32_t *coe_list, int32_t *reture_value);
QYQ_ARITHMETIC_FILTER_EXT void qyq_arithmetic_buffeting_filter(int32_t old_value, int32_t new_value, uint32_t *count, uint32_t number, int32_t *reture_value);
QYQ_ARITHMETIC_FILTER_EXT void qyq_arithmetic_limiting_buffeting_filter(int32_t old_value, int32_t new_value, int32_t deviation_value, uint32_t *count, uint32_t number, int32_t *reture_value);

#endif
